package br.com.javagyn.OLD;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.TypedQuery;

import org.hibernate.Criteria;
import org.hibernate.FetchMode;
import org.hibernate.criterion.Order;

import br.com.javagyn.dao.base.AppDAO;

@Stateless
public class LancamentoDAO extends AppDAO<Lancamento>{

	private static final long serialVersionUID = -1L;
	
	//metodo utilizado para listar os Lançamentos fazendo um JOIN com a tabela Pessoa retornando apenas uma consulta
	@SuppressWarnings({"unchecked"})
	@Override
	public List<Lancamento> listar(){
		Criteria criteria = this.novaCriteria();
		criteria.setFetchMode("pessoa", FetchMode.JOIN);
		criteria.addOrder(Order.asc("id"));
		return criteria.list();
	}

	public List<String> descricoesQueContem(String descricao) {
		TypedQuery<String> query = this.getManager().createQuery(
				"select distinct descricao from Lancamento "
						+ "where upper(descricao) like upper(:descricao)",
				String.class);
		query.setParameter("descricao", "%" + descricao + "%");
		return query.getResultList();
	}
}
